

#include "main.h"



#pragma anon_unions




/*********任务优先级**********/
#define START_TASK_PRIO		1
/*********任务堆栈大小********/
#define START_STK_SIZE 		configMINIMAL_STACK_SIZE 
/**********任务句柄***********/
TaskHandle_t StartTask_Handler;
/***********任务函数**********/
void vStart_task(void *pvParameters);



/*********任务优先级**********/
#define BSW_OS_TASK_PRIO		4
/*********任务堆栈大小********/
#define BSW_OS_STK_SIZE 		128  
/**********任务句柄***********/
TaskHandle_t BSWOSTask_Handler;
/***********任务函数**********/
void vBSW_OS_task(void *pvParameters);


/*********任务优先级**********/
#define TEST_TASK_PRIO		5
/*********任务堆栈大小********/
#define TEST_STK_SIZE 		128  
/**********任务句柄***********/
TaskHandle_t TestTask_Handler;
/***********任务函数**********/
void vTest_task(void *pvParameters);
void vTask1_task(void *pvParameters);



/*开始任务任务函数*/
void vStart_task(void *pvParameters)
{
	taskENTER_CRITICAL();  					/*进入临界区*/ 	
	/*创建 BSW_OS_task 任务*/
	/*xTaskCreate(vBSW_OS_task,
							"BSW_OS_task",
							BSW_OS_STK_SIZE,
							NULL,
							0,
							BSWOSTask_Handler);*/
	/*创建 Test_task 任务*/
	xTaskCreate(vTest_task,
							"Test_task",
							TEST_STK_SIZE,
							NULL,
							0,
							TestTask_Handler);
	
//	/*创建 Test_task 任务*/
//	xTaskCreate(vTask1_task,
//							"Task1_task",
//							TEST_STK_SIZE,
//							NULL,
//							2,
//							TestTask_Handler);
	
	

	vTaskDelete(StartTask_Handler); /*删除开始任务*/
	taskEXIT_CRITICAL();            /*退出临界区*/
}


void vTask1_task(void *pvParameters)
{
	while(1)
	{
		taskENTER_CRITICAL();  /*进入临界区，避免多任务同时访问串口*/
		BSW_LPUART_Send_Char(LPUART1,"Task1 \n");
		taskEXIT_CRITICAL();   /*离开临界区*/
		vTaskDelay(100); 	
	}
}



void vBSW_OS_task(void *pvParameters)
{
	while(1) 
	{
	  if (b_TimerBaseFlag == TRUE)
	  {
		  b_TimerBaseFlag = FALSE;
		  BSW_SystemService_OS_RunTimerTask();
	  }
	  else
		{
			/*NO-CODE*/
		}
	}
}





u8 G_u8_PTD15_Status = 0;
float G_f_DebugNum = 2;
float u16_Vol = 1;
void vTest_task(void *pvParameters)
{
    //ECU_SPI_INIT();
    //wizchip_Hard_INIT();
	while(1) 
	{
		vTaskDelay(10 / portTICK_PERIOD_MS);
//		BSW_GPIO_OPPOSITE(PTE,PIN8_IDX);
		BSW_WD_REFRESH();
		ECU_SPI_DMA_START();
		ECU_UART_DMA_Tdata();
        ECU_RTC_Test();
        ECU_RTC_RUN();
        systick_test();
        wizchip_Main();
        Ecu_ADC0_Main();
        ECU_Relay_Test();
        ECU_Relay_Diag();
//		G_u8_PTD15_Status = BSW_GPIO_ReadBit(PTD,PIN15_IDX);
//		u16_Vol = (u16_Vol * 6/1000);
//		G_f_DebugNum = G_f_DebugNum * u16_Vol;
		
	}
}




















































































int main(void)
{
	EcuM_Init();
	/**********	OS时钟周期任务开启调度***********/
	BSW_SystemService_OS_StartOS();

//  return(__regAPSR);
	
	
	
	/***************创建开始任务****************/
	xTaskCreate((TaskFunction_t )vStart_task,							/*	任务函数							*/
                (const char*    )"Start_task",					/*	任务名称							*/
                (uint16_t       )START_STK_SIZE,				/*	任务堆栈大小					*/
                (void*          )NULL,									/*	传递给任务函数的参数	*/
                (UBaseType_t    )START_TASK_PRIO,				/*	任务优先级						*/
                (TaskHandle_t*  )&StartTask_Handler);		/*	任务句柄							*/ 
	vTaskStartScheduler();          /*开启任务调度*/
}



/***************************************************************************************
	xTaskCreate(vTest_task, "Test_task", configMINIMAL_STACK_SIZE, NULL, 4, NULL);
	xTaskCreate(vBSW_OS_task, "BSW_OS_task", configMINIMAL_STACK_SIZE, NULL, 0, NULL);
	vTaskStartScheduler();         
***************************************************************************************/

